home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_qt.idb / usr / freeware / catman / p_man / cat3 / qarray.Z / qarray
Encoding:
Text File  |  1998-10-28  |  25.6 KB  |  529 lines

  1.  
  2.  
  3.  
  4.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       QArray - Template class that provides    arrays of simple types
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.       #include <qarray.h>
  13.  
  14.       Inherits QGArray.
  15.  
  16.       Inherited by QByteArray and QPointArray.
  17.  
  18.     PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrrssss
  19.       QQQQAAAArrrrrrrraaaayyyy (((())))
  20.       QQQQAAAArrrrrrrraaaayyyy (((( iiiinnnntttt ssssiiiizzzzeeee ))))
  21.       QQQQAAAArrrrrrrraaaayyyy (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&&    aaaa ))))
  22.       ~~~~QQQQAAAArrrrrrrraaaayyyy ()
  23.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    ooooppppeeeerrrraaaattttoooorrrr==== (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))
  24.       ttttyyyyppppeeee****    ddddaaaattttaaaa (((())))    ccccoooonnnnsssstttt
  25.       uuuuiiiinnnntttt nnnnrrrreeeeffffssss (((())))    ccccoooonnnnsssstttt
  26.       uuuuiiiinnnntttt ssssiiiizzzzeeee (((()))) ccccoooonnnnsssstttt
  27.       bbbboooooooollll iiiissssEEEEmmmmppppttttyyyy (((()))) ccccoooonnnnsssstttt
  28.       bbbboooooooollll iiiissssNNNNuuuullllllll (((()))) ccccoooonnnnsssstttt
  29.       bbbboooooooollll rrrreeeessssiiiizzzzeeee ((((    uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  30.       bbbboooooooollll ttttrrrruuuunnnnccccaaaatttteeee    (((( uuuuiiiinnnntttt ppppoooossss ))))
  31.       bbbboooooooollll ffffiiiillllllll (((( ccccoooonnnnsssstttt ttttyyyyppppeeee &&&& _v,,,, iiiinnnntttt ssssiiiizzzzeeee====----1111====----1111 ))))
  32.       vvvviiiirrrrttttuuuuaaaallll vvvvooooiiiidddd ddddeeeettttaaaacccchhhh (((())))
  33.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> ccccooooppppyyyy (((()))) ccccoooonnnnsssstttt
  34.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    aaaassssssssiiiiggggnnnn (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa    ))))
  35.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    aaaassssssssiiiiggggnnnn (((( ccccoooonnnnsssstttt ttttyyyyppppeeee **** _d_a_t_a,,,, uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  36.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    dddduuuupppplllliiiiccccaaaatttteeee (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))
  37.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    dddduuuupppplllliiiiccccaaaatttteeee (((( ccccoooonnnnsssstttt ttttyyyyppppeeee **** _d_a_t_a,,,, uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  38.       QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>&&&&    sssseeeettttRRRRaaaawwwwDDDDaaaattttaaaa (((( ccccoooonnnnsssstttt ttttyyyyppppeeee    **** _d_a_t_a,,,,    uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  39.       vvvvooooiiiidddd rrrreeeesssseeeettttRRRRaaaawwwwDDDDaaaattttaaaa (((( ccccoooonnnnsssstttt ttttyyyyppppeeee **** _d_a_t_a,,,, uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  40.       iiiinnnntttt ffffiiiinnnndddd (((( ccccoooonnnnsssstttt ttttyyyyppppeeee    &&&& _v,,,, uuuuiiiinnnntttt _i_n_d_e_x====0000 )))) ccccoooonnnnsssstttt
  41.       iiiinnnntttt ccccoooonnnnttttaaaaiiiinnnnssss (((( ccccoooonnnnsssstttt ttttyyyyppppeeee &&&& vvvv    )))) ccccoooonnnnsssstttt
  42.       ttttyyyyppppeeee&&&&    ooooppppeeeerrrraaaattttoooorrrr[[[[]]]] (((( iiiinnnntttt iiiinnnnddddeeeexxxx )))) ccccoooonnnnsssstttt
  43.       ttttyyyyppppeeee&&&&    aaaatttt (((( uuuuiiiinnnntttt iiiinnnnddddeeeexxxx    )))) ccccoooonnnnsssstttt
  44.       ooooppppeeeerrrraaaattttoooorrrr ccccoooonnnnsssstttt ttttyyyyppppeeee**** ()const
  45.       bbbboooooooollll ooooppppeeeerrrraaaattttoooorrrr======== (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa )))) ccccoooonnnnsssstttt
  46.       bbbboooooooollll ooooppppeeeerrrraaaattttoooorrrr!!!!==== (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa )))) ccccoooonnnnsssstttt
  47.  
  48.     PPPPrrrrooootttteeeecccctttteeeedddd MMMMeeeemmmmbbbbeeeerrrrssss
  49.       QQQQAAAArrrrrrrraaaayyyy (((( iiiinnnntttt,,,,    iiiinnnntttt ))))
  50.  
  51.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  52.       The QArray class is a    template class that provides arrays of
  53.       simple types.
  54.  
  55.       QArray is implemented    as both    a template and a macro class.
  56.       Define a template instance QArray<X> to create an array that
  57.       contains X items.
  58.  
  59.       The QVector collection class is also a kind of array.    Like
  60.  
  61.  
  62.  
  63.      Page 1                         (printed 9/22/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  71.  
  72.  
  73.  
  74.       all collection classes, it has pointers to the contained
  75.       items.
  76.  
  77.       QArray stores    the array elements directly in the array. It
  78.       can only deal    with simple types, i.e.    C++ types, structs and
  79.       classes that have no constructors, destructors or virtual
  80.       functions. QArray uses bitwise operations to copy and
  81.       compare array    elements.
  82.  
  83.       QArray uses explicit sharing with a reference    count. If more
  84.       than one array share common data, and    one array is modified,
  85.       all arrays will be modified.
  86.  
  87.       The benefit of sharing is that a program does    not need to
  88.       duplicate data when it is not    required, which    results    in
  89.       less memory usage and    less copying of    data.
  90.  
  91.       Example:
  92.  
  93.           #include <qarray.h>
  94.           #include <stdio.h>
  95.           QArray<int> fib( int num )          // returns fibonacci array
  96.           {
  97.           ASSERT( num >    2 );
  98.           QArray<int> f( num );              // array of ints
  99.           f[0] = f[1] =    1;              // initialize    first two numbers
  100.           for (    int i=2; i<num;    i++ )
  101.               f[i] = f[i-1] + f[i-2];
  102.           return f;
  103.           }
  104.           void main()
  105.           {
  106.           QArray<int> a    = fib( 6 );          // get 6 first fibonaccis
  107.           int i;
  108.           for (    i=0; i<a.size(); i++ )          // print them
  109.               prinf( "%d: %d\n", i, a[i] );
  110.           printf( "1 is    found %d time(s)\n", a.contains(1) );
  111.           printf( "5 is    found at index %d\n", a.find(5)    );
  112.           }
  113.  
  114.       Program output:
  115.  
  116.           0: 1
  117.           1: 1
  118.           2: 2
  119.           3: 3
  120.           4: 5
  121.           5: 8
  122.           1 is found 2 times
  123.           5 is found at    index 4
  124.  
  125.       An array can also be instantiated through a macro expansion,
  126.  
  127.  
  128.  
  129.      Page 2                         (printed 9/22/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  137.  
  138.  
  139.  
  140.       but this is necessary    only for compilers that    do not support
  141.       templates. We    recommend using    templates if your compiler
  142.       supports it. Macros are much harder to debug.
  143.  
  144.       Macro    expansion:
  145.  
  146.         ...
  147.           Q_DECLARE(QArrayM,X);              // declares the array
  148.           void main()
  149.           {
  150.           QArrayM(X) a;              // array of X    elements
  151.         ...
  152.  
  153.       If you want to make your code    work for compilers that    do not
  154.       have template    support, but use templates if they are
  155.       available, you can use typedef:
  156.  
  157.         ...
  158.           #if defined(USE_TEMPLATECLASS)      // defined in    qglobal.h
  159.           typedef QArrayT<X>     XArray;
  160.           #else
  161.           typedef Q_DECLARE(QArrayM,X) XArray;
  162.           #endif
  163.           void main()
  164.           {
  165.           XArray a;              // array of X    elements
  166.         ...
  167.  
  168.       QArrayT refers to the    QArray template    and QArrayM refers to
  169.       the QArray macro. QArray defaults to QArrayT if templates
  170.       are supported, QArrayM otherwise.
  171.  
  172.       See also: Shared Classes
  173.  
  174.      MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  175.      QQQQAAAArrrrrrrraaaayyyy::::::::QQQQAAAArrrrrrrraaaayyyy (((())))
  176.       Constructs a null array.
  177.  
  178.       See also: isNull().
  179.  
  180.      QQQQAAAArrrrrrrraaaayyyy::::::::QQQQAAAArrrrrrrraaaayyyy (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))
  181.       Constructs a shallow copy of _a.
  182.  
  183.       See also: assign().
  184.  
  185.      QQQQAAAArrrrrrrraaaayyyy::::::::QQQQAAAArrrrrrrraaaayyyy (((( iiiinnnntttt ssssiiiizzzzeeee ))))
  186.       Constructs an    array with room    for _s_i_z_e elements. Makes a
  187.       null array if    _s_i_z_e ==    0.
  188.  
  189.       Note that the    elements are not initialized.
  190.  
  191.       See also: resize() and isNull().
  192.  
  193.  
  194.  
  195.      Page 3                         (printed 9/22/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  203.  
  204.  
  205.  
  206.      QQQQAAAArrrrrrrraaaayyyy::::::::QQQQAAAArrrrrrrraaaayyyy (((( iiiinnnntttt,,,, iiiinnnntttt )))) [[[[pppprrrrooootttteeeecccctttteeeedddd]]]]
  207.       Constructs an    array _w_i_t_h_o_u_t _a_l_l_o_c_a_t_i_n_g array space. The
  208.       arguments should be (0, 0). Use at own risk.
  209.  
  210.      QQQQAAAArrrrrrrraaaayyyy::::::::~~~~QQQQAAAArrrrrrrraaaayyyy (((())))
  211.       Dereferences the array data and deletes it if    this was the
  212.       last reference.
  213.  
  214.      QQQQAAAArrrrrrrraaaayyyy::::::::ooooppppeeeerrrraaaattttoooorrrr ccccoooonnnnsssstttt ttttyyyyppppeeee **** (((()))) ccccoooonnnnsssstttt
  215.       Cast operator. Returns a pointer to the array.
  216.  
  217.       See also: data().
  218.  
  219.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::aaaassssssssiiiiggggnnnn (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>>    &&&& aaaa ))))
  220.       Shallow copy.    Dereferences the current array and references
  221.       the data contained in    _a instead. Returns a reference to this
  222.       array.
  223.  
  224.       See also: operator=().
  225.  
  226.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::aaaassssssssiiiiggggnnnn (((( ccccoooonnnnsssstttt ttttyyyyppppeeee    **** ddddaaaattttaaaa,,,,    uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  227.       Shallow copy.    Dereferences the current array and references
  228.       the array data _d_a_t_a, which contains _s_i_z_e elements. Returns a
  229.       reference to this array.
  230.  
  231.       Do not delete    _d_a_t_a later, QArray takes care of that.
  232.  
  233.      ttttyyyyppppeeee &&&& QQQQAAAArrrrrrrraaaayyyy::::::::aaaatttt (((( uuuuiiiinnnntttt iiiinnnnddddeeeexxxx )))) ccccoooonnnnsssstttt
  234.       Returns a reference to the element at    position _i_n_d_e_x in the
  235.       array.
  236.  
  237.       This can be used to both read    and set    an element.
  238.  
  239.       See also: operator[]().
  240.  
  241.      iiiinnnntttt QQQQAAAArrrrrrrraaaayyyy::::::::ccccoooonnnnttttaaaaiiiinnnnssss (((( ccccoooonnnnsssstttt ttttyyyyppppeeee &&&& vvvv )))) ccccoooonnnnsssstttt
  242.       Returns the number of    times _v    occurs in the array.
  243.  
  244.       See also: find().
  245.  
  246.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> QQQQAAAArrrrrrrraaaayyyy::::::::ccccooooppppyyyy (((()))) ccccoooonnnnsssstttt
  247.       Returns a deep copy of this array.
  248.  
  249.       See also: detach() and duplicate().
  250.  
  251.      ttttyyyyppppeeee **** QQQQAAAArrrrrrrraaaayyyy::::::::ddddaaaattttaaaa (((()))) ccccoooonnnnsssstttt
  252.       Returns a pointer to the actual array    data.
  253.  
  254.       The array is a null array if data() == 0 (null pointer).
  255.  
  256.       See also: isNull().
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                         (printed 9/22/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  269.  
  270.  
  271.  
  272.      vvvvooooiiiidddd QQQQAAAArrrrrrrraaaayyyy::::::::ddddeeeettttaaaacccchhhh (((()))) [[[[vvvviiiirrrrttttuuuuaaaallll]]]]
  273.       Detaches this    array from shared array    data, i.e. makes a
  274.       private, deep    copy of    the data.
  275.  
  276.       Copying will only be performed if the    reference count    is
  277.       greater than one.
  278.  
  279.       See also: copy().
  280.  
  281.       Reimplemented    from QGArray.
  282.  
  283.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::dddduuuupppplllliiiiccccaaaatttteeee ((((    ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))
  284.       Deep copy. Dereferences the current array and    obtains    a copy
  285.       of the data contained    in _a instead. Returns a    reference to
  286.       this array.
  287.  
  288.       See also: copy().
  289.  
  290.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::dddduuuupppplllliiiiccccaaaatttteeee ((((    ccccoooonnnnsssstttt ttttyyyyppppeeee **** ddddaaaattttaaaa,,,, uuuuiiiinnnntttt    ssssiiiizzzzeeee ))))
  291.       Deep copy. Dereferences the current array and    obtains    a copy
  292.       of the array data _d_a_t_a instead. Returns a reference to this
  293.       array.
  294.  
  295.       See also: copy().
  296.  
  297.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::ffffiiiillllllll (((( ccccoooonnnnsssstttt ttttyyyyppppeeee &&&& vvvv,,,, iiiinnnntttt ssssiiiizzzzeeee====----1111====----1111    ))))
  298.       Fills    the array with the value _v. If _s_i_z_e is specified as
  299.       different from -1, then the array will be resized before
  300.       filled.
  301.  
  302.       Returns TRUE if successful, or FALSE if the memory cannot be
  303.       allocated (only when _s_i_z_e != -1).
  304.  
  305.       See also: resize().
  306.  
  307.      iiiinnnntttt QQQQAAAArrrrrrrraaaayyyy::::::::ffffiiiinnnndddd ((((    ccccoooonnnnsssstttt ttttyyyyppppeeee &&&& vvvv,,,,    uuuuiiiinnnntttt iiiinnnnddddeeeexxxx====0000 )))) ccccoooonnnnsssstttt
  308.       Finds    the first occurrence of    _v, starting at position    _i_n_d_e_x.
  309.  
  310.       Returns the position of _v, or    -1 if _v    could not be found.
  311.  
  312.       See also: contains().
  313.  
  314.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::iiiissssEEEEmmmmppppttttyyyy (((()))) ccccoooonnnnsssstttt
  315.       Returns TRUE if the array is empty, i.e. size() == 0,
  316.       otherwise FALSE.
  317.  
  318.       isEmpty() is equivalent with isNull()    for QArray. Note that
  319.       this is not the case for QString::isEmpty().
  320.  
  321.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::iiiissssNNNNuuuullllllll (((()))) ccccoooonnnnsssstttt
  322.       Returns TRUE if the array is null, otherwise FALSE.
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                         (printed 9/22/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  335.  
  336.  
  337.  
  338.       A null array has size() == 0 and data() == 0.
  339.  
  340.      uuuuiiiinnnntttt QQQQAAAArrrrrrrraaaayyyy::::::::nnnnrrrreeeeffffssss    (((()))) ccccoooonnnnsssstttt
  341.       Returns the reference    count for the shared array data. This
  342.       reference count is always greater than zero.
  343.  
  344.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::ooooppppeeeerrrraaaattttoooorrrr!!!!==== (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))    ccccoooonnnnsssstttt
  345.       Returns TRUE if this array is    different from _a, otherwise
  346.       FALSE.
  347.  
  348.       The two arrays are bitwise compared.
  349.  
  350.       See also: operator==().
  351.  
  352.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::ooooppppeeeerrrraaaattttoooorrrr==== ((((    ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))
  353.       Assigns a shallow copy of _a to this array and    returns    a
  354.       reference to this array.
  355.  
  356.       Equivalent to    assign(    a ).
  357.  
  358.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::ooooppppeeeerrrraaaattttoooorrrr======== (((( ccccoooonnnnsssstttt QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& aaaa ))))    ccccoooonnnnsssstttt
  359.       Returns TRUE if this array is    equal to _a, otherwise FALSE.
  360.  
  361.       The two arrays are bitwise compared.
  362.  
  363.       See also: operator!=().
  364.  
  365.      ttttyyyyppppeeee &&&& QQQQAAAArrrrrrrraaaayyyy::::::::ooooppppeeeerrrraaaattttoooorrrr[[[[]]]] (((( iiiinnnntttt iiiinnnnddddeeeexxxx )))) ccccoooonnnnsssstttt
  366.       Returns a reference to the element at    position _i_n_d_e_x in the
  367.       array.
  368.  
  369.       This can be used to both read    and set    an element. Equivalent
  370.       to at().
  371.  
  372.       See also: at().
  373.  
  374.      vvvvooooiiiidddd QQQQAAAArrrrrrrraaaayyyy::::::::rrrreeeesssseeeettttRRRRaaaawwwwDDDDaaaattttaaaa (((( ccccoooonnnnsssstttt ttttyyyyppppeeee **** ddddaaaattttaaaa,,,, uuuuiiiinnnntttt ssssiiiizzzzeeee ))))
  375.       Resets raw data that was set using setRawData().
  376.  
  377.       The arguments    must be    the data and length that were passed
  378.       to setRawData(). This    is for consistency checking.
  379.  
  380.       See also: setRawData().
  381.  
  382.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::rrrreeeessssiiiizzzzeeee (((( uuuuiiiinnnntttt    ssssiiiizzzzeeee ))))
  383.       Resizes (expands or shrinks) the array to _s_i_z_e elements. The
  384.       array    becomes    a null array if    _s_i_z_e ==    0.
  385.  
  386.       Returns TRUE if successful, or FALSE if the memory cannot be
  387.       allocated.
  388.  
  389.       New elements will not    be initialized.
  390.  
  391.  
  392.  
  393.      Page 6                         (printed 9/22/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  401.  
  402.  
  403.  
  404.       See also: size().
  405.  
  406.      QQQQAAAArrrrrrrraaaayyyy<<<<ttttyyyyppppeeee>>>> &&&& QQQQAAAArrrrrrrraaaayyyy::::::::sssseeeettttRRRRaaaawwwwDDDDaaaattttaaaa (((( ccccoooonnnnsssstttt ttttyyyyppppeeee **** ddddaaaattttaaaa,,,, uuuuiiiinnnntttt ssssiiiizzzzeeee
  407.       ))))
  408.       Sets raw data    and returns a reference    to the array.
  409.  
  410.       Dereferences the current array and sets the new array    data
  411.       to _d_a_t_a and the new array size to _s_i_z_e. Do not attempt to
  412.       resize or re-assign the array    data when raw data has been
  413.       set. Call resetRawData(d,len)    to reset the array.
  414.  
  415.       Setting raw data is useful because it    sets QArray data
  416.       without allocating memory or copying data.
  417.  
  418.       Example I (intended use):
  419.  
  420.           static char bindata[] = {    231, 1,    44, ...    };
  421.           QByteArray  a;
  422.           a.setRawData( bindata, sizeof(bindata) );      // a points to bindata
  423.           QDataStream s( a,    IO_ReadOnly );          // open on a's data
  424.           s    >> <something>;                  // read raw bindata
  425.           a.resetRawData( bindata, sizeof(bindata) ); // finished
  426.  
  427.       Example II (you don't    want to    do this):
  428.  
  429.           static char bindata[] = {    231, 1,    44, ...    };
  430.           QByteArray  a, b;
  431.           a.setRawData( bindata, sizeof(bindata) );      // a points to bindata
  432.           a.resize(    8 );                  // will crash
  433.           b    = a;                      // will crash
  434.           a[2] = 123;                  // might crash
  435.         // forget to resetRawData - will crash
  436.  
  437.       WWWWaaaarrrrnnnniiiinnnngggg:::: If you do not call resetRawData(), QArray will
  438.       attempt to deallocate    or reallocate the raw data, which
  439.       might    not be too good. Be careful.
  440.  
  441.       See also: resetRawData().
  442.  
  443.      uuuuiiiinnnntttt QQQQAAAArrrrrrrraaaayyyy::::::::ssssiiiizzzzeeee (((()))) ccccoooonnnnsssstttt
  444.       Returns the size of the array    (max number of elements).
  445.  
  446.       The array is a null array if size() == 0.
  447.  
  448.       See also: isNull() and resize().
  449.  
  450.       Examples:  drawdemo/drawdemo.cpp
  451.  
  452.      bbbboooooooollll QQQQAAAArrrrrrrraaaayyyy::::::::ttttrrrruuuunnnnccccaaaatttteeee (((( uuuuiiiinnnntttt ppppoooossss ))))
  453.       Truncates the    array at position _p_o_s.
  454.  
  455.       Returns TRUE if successful, or FALSE if the memory cannot be
  456.  
  457.  
  458.  
  459.      Page 7                         (printed 9/22/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))    TTTTrrrroooollllllll TTTTeeeecccchhhh AAAASSSS ((((9999 JJJJuuuullllyyyy 1111999999998888))))       QQQQAAAArrrrrrrraaaayyyy((((3333qqqqtttt))))
  467.  
  468.  
  469.  
  470.       allocated.
  471.  
  472.       Equivalent to    resize(_p_o_s).
  473.  
  474.       See also:  resize().
  475.  
  476.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  477.       hhhhttttttttpppp::::////////wwwwwwwwwwww....ttttrrrroooollllllll....nnnnoooo////qqqqtttt////qqqqaaaarrrrrrrraaaayyyy....hhhhttttmmmmllll
  478.  
  479.      CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
  480.       Copyright 1992-1997 Troll Tech AS.  See the LICENSE file
  481.       included in the distribution for a complete license
  482.       statement.
  483.  
  484.      AAAAUUUUTTTTHHHHOOOORRRR
  485.       Generated automatically from the source code.
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.      Page 8                         (printed 9/22/98)
  526.  
  527.  
  528.  
  529.